The present invention relates to real-time data communications over packet switched networks and, more particularly, to the calculation of frame loss rates relating to such communications.
Real time communications such as audio or video can be encoded using various compression techniques. One or more frames of encoded information can then be placed in a data packet with time and sequence information and transported via non-guarantee Quality of Service (QoS) packet networks. A stream of such packets may be used to transfer real time audio or video information. Non-guaranteed packet switched networks include a Local Area Network (LAN), Internet Protocol Network, Frame Relay Network, or an interconnected mixture of such networks such as an Internet or Intranet. One underlying problem with non-guaranteed packet networks is that transported packets are subject to varying loss and delays. Therefore, for real-time communications, a tradeoff exists among the quality of the service, the interactive delay, and the utilized bandwidth. This tradeoff is a function of the selected coding scheme, the packetization scheme, the redundancy of information packeted within the packets, the receiver buffer size, the bandwidth restrictions, and the transporting characteristics of the transporting network.
The transmission of real time communications over packet switched networks presents several challenges. A general problem encountered in packet switched networks, is that the network may drop or lose data packets. Packets may also experience excessive delay during transportation from the sender to the receiver. Therefore, some of the packets at a receiving destination will be missing and others will arrive out of order. Another problem is the maintenance of a synchronous play-out of frames to the decoder, given that the packet arrival times are non-deterministic. The uncertainty in the arrival time of any packet in a packet stream is referred to as jitter. Typically, this problem is addressed using a jitter buffer.
The jitter buffer waits for the reception of some number of frames before play-out of the data frames begins. The threshold number of frames in the buffer during transmission is typically known as a watermark. In this way, if subsequent packets are slightly early or slightly late, they are still likely to arrive in time for their scheduled play-out.
The workings of the jitter buffer itself presents different challenges. For example, if the buffer is made very large, the inherent delay of the jitter buffer may exceed the channel jitter, and the system receives all packets in time for their respective play-out. However, the disadvantage of having a very large buffer is that a large delay is added to the system. This may be unacceptable in a real time voice or video session. Conversely, if the buffer is made very small, there will be an excessive number of late frames which cannot be played on time. This will degrade the quality of the reconstructed signal.
One approach to finding the proper trade-off between delay and late frames is to use a dynamic jitter buffer. Such a buffer dynamically adjusts its size and introduces buffering delay in proportion to the true channel jitter.
If it is assumed that the packet arrival statistics are stationary, then the frame loss performance in the past should be identical to that in the future, for any static buffer size. In practice, it is relatively easy to monitor the frame loss rate at the output of a jitter buffer. Given this hypothesis regarding the packet arrival statistics, a prediction of future frame loss performance can be made. Of interest is the frame loss as observed at the output of the jitter buffer. Frame loss can result from the loss of packets over the network, from packets that arrive partially or entirely too late to decode, or from a burst of packet arrivals to the jitter buffer in a short period of time such that the buffer overflows.
Given the assumption of stationary jitter statistics, it would be useful to have a method to calculate the past frame loss performance for a range of buffer sizes. One solution that has been implemented uses an array of xe2x80x9cvirtualxe2x80x9d buffers. The solution uses a total of N buffer sizes. One real buffer is implemented along with Nxe2x88x921 virtual buffers. A virtual buffer applies all the logic, state transitions and variable monitoring that the real buffer does. The frame loss rate of any virtual buffer is determined by treating that buffer as if it holds actual frames. The packet flow into and out of each buffer is monitored and the loss count is incremented as lost frames are identified. The difference is that no payload data is ever really loaded into or out of the virtual buffers. However, the virtual buffers require a great deal of complex computation.
Therefore, there still is a need to efficiently calculate frame loss rates over the virtual buffers which requires a lower level of processing.
In accordance with preferred embodiments of the present invention, some of the problems associated with data transmission over packet switched networks in the prior art are overcome. The present invention includes a system and a method to calculate frame loss rates associated with jitter buffers of varying sizes to dynamically select the size of a jitter buffer to implement. Specifically, packet arrival times are used to infer what the frame loss rates are for arbitrarily sized buffers. Of interest is the frame loss rate as observed at the output of the jitter buffer. The system of the present invention includes, but is not limited to, one frame per packet. The frame loss data can be used to select a buffer size with a desirable trade-off between loss and delay. The system and method of the present invention reduces the burden on the system hardware and software as a lower level of processing is required.
In a preferred embodiment, the method for selecting an optimal size of a buffer in a communications system for transmitting real time communication includes computing an average queue time of a frame in the jitter buffer and determining expected arrival times of a sample of data frames. The method also includes creating a matrix having at least a first row, a second row and m number of columns, by placing the comparative times between actual and expected arrival times of data packets in the first row. Further, the method includes determining a number of late, a number of lost and a number of overflowed frames. The matrix is then adjusted to account for at least one of late, lost or overflowed frames. The method further includes determining a total loss rate of the frames, and comparing the loss rate determined to a desired loss rate of the frames. An optimal size of the jitter buffer is then selected that approximates the desired loss rate.
In another preferred embodiment the system of the present invention includes a control system for selecting an optimal size of a buffer in a communication system for transmitting real time communications. The control system includes a jitter buffer of selectable size to receive data packets and a controller for evaluating packet arrival statistics to determine a frame loss rate. The controller further selects a value for the size of the jitter buffer which approximates a desired loss rate.
The foregoing and other features and advantages of the present invention will be more readily apparent from the following detailed description of an embodiment of the present invention, which proceeds with references to the accompanying drawings. As illustrated in the accompanying drawings, like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating the principles of the invention.